A mobile robot operates by navigating around an environment. The mobile robot can include a shell, which contacts obstacles that the mobile robot encounters in its travels. The mobile robot can modify its behavior in response to detecting that the shell has contacted an obstacle in the environment. For example, the mobile robot can back-away from the obstacle, or otherwise alter its path.